Gull tracking¶
View a running version of this notebook. | Download this project.
The Research Institute for Nature and Forest (INBO) has been monitoring GPS locations of herring gulls breeding at the North Sea coast of Belgium since 2013. For 2018, there are 2.4 million bird-tracking coordinates, which are difficult to visualize with most plotting libraries but are easily visualized using Datashader. See DOI 10.5281/zenodo.3541812 for details and how to download the data.
import pandas as pd, holoviews as hv
from colorcet import fire
from datashader.geo import lnglat_to_meters
from holoviews.element.tiles import EsriImagery
from holoviews.operation.datashader import rasterize, shade
df = pd.read_csv('./data/HG_OOSTENDE-gps-2018.csv', usecols=['location-long', 'location-lat'])
df.columns = ['longitude', 'latitude']
df.loc[:,'longitude'], df.loc[:,'latitude'] = lnglat_to_meters(df.longitude, df.latitude)
hv.extension('bokeh')
map_tiles = EsriImagery().opts(alpha=1.0, width=800, height=800, bgcolor='black')
points = hv.Points(df, ['longitude', 'latitude'])
rasterized = shade(rasterize(points, x_sampling=1, y_sampling=1, width=800, height=800), cmap=fire)
map_tiles * rasterized
If you have a live Python process running, you should be able to select the wheel-zoom tool widget and then zoom into the above image and have it re-render the data at the new location, revealing more detail as you zoom in. For instance, here's a large-scale region followed by a zoomed-in area, indicating that these gulls tend to spend a lot of time around certain man-made features of the landscape:
View a running version of this notebook. | Download this project.